plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
↳ QTRS
↳ DependencyPairsProof
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
TIMES(s(x), y) → PLUS(y, times(x, y))
FACITER(x, y) → IF(isZero(x), minus(x, s(0)), y, times(y, x))
FACITER(x, y) → TIMES(y, x)
MINUS(x, s(y)) → P(minus(x, y))
TIMES(s(x), y) → TIMES(x, y)
IF(false, x, y, z) → FACITER(x, z)
FACITER(x, y) → MINUS(x, s(0))
FACITER(x, y) → ISZERO(x)
MINUS(x, s(y)) → MINUS(x, y)
FACTORIAL(x) → FACITER(x, s(0))
PLUS(s(x), y) → PLUS(x, y)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
TIMES(s(x), y) → PLUS(y, times(x, y))
FACITER(x, y) → IF(isZero(x), minus(x, s(0)), y, times(y, x))
FACITER(x, y) → TIMES(y, x)
MINUS(x, s(y)) → P(minus(x, y))
TIMES(s(x), y) → TIMES(x, y)
IF(false, x, y, z) → FACITER(x, z)
FACITER(x, y) → MINUS(x, s(0))
FACITER(x, y) → ISZERO(x)
MINUS(x, s(y)) → MINUS(x, y)
FACTORIAL(x) → FACITER(x, s(0))
PLUS(s(x), y) → PLUS(x, y)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ MNOCProof
↳ QDP
↳ QDP
↳ QDP
MINUS(x, s(y)) → MINUS(x, y)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
MINUS(x, s(y)) → MINUS(x, y)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
MINUS(x, s(y)) → MINUS(x, y)
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
MINUS(x, s(y)) → MINUS(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ QDP
PLUS(s(x), y) → PLUS(x, y)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
PLUS(s(x), y) → PLUS(x, y)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
PLUS(s(x), y) → PLUS(x, y)
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
PLUS(s(x), y) → PLUS(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
TIMES(s(x), y) → TIMES(x, y)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
TIMES(s(x), y) → TIMES(x, y)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
TIMES(s(x), y) → TIMES(x, y)
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
TIMES(s(x), y) → TIMES(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
FACITER(x, y) → IF(isZero(x), minus(x, s(0)), y, times(y, x))
IF(false, x, y, z) → FACITER(x, z)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
FACITER(x, y) → IF(isZero(x), minus(x, s(0)), y, times(y, x))
IF(false, x, y, z) → FACITER(x, z)
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
p(s(x)) → x
p(0) → 0
minus(x, 0) → x
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
isZero(0) → true
isZero(s(x)) → false
facIter(x, y) → if(isZero(x), minus(x, s(0)), y, times(y, x))
if(true, x, y, z) → y
if(false, x, y, z) → facIter(x, z)
factorial(x) → facIter(x, s(0))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
FACITER(x, y) → IF(isZero(x), minus(x, s(0)), y, times(y, x))
IF(false, x, y, z) → FACITER(x, z)
isZero(0) → true
isZero(s(x)) → false
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
minus(x, 0) → x
p(s(x)) → x
p(0) → 0
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
facIter(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
factorial(x0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
FACITER(x, y) → IF(isZero(x), minus(x, s(0)), y, times(y, x))
IF(false, x, y, z) → FACITER(x, z)
isZero(0) → true
isZero(s(x)) → false
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
minus(x, 0) → x
p(s(x)) → x
p(0) → 0
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
FACITER(0, y1) → IF(true, minus(0, s(0)), y1, times(y1, 0))
FACITER(s(x0), y1) → IF(false, minus(s(x0), s(0)), y1, times(y1, s(x0)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
FACITER(0, y1) → IF(true, minus(0, s(0)), y1, times(y1, 0))
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(x0), y1) → IF(false, minus(s(x0), s(0)), y1, times(y1, s(x0)))
isZero(0) → true
isZero(s(x)) → false
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
minus(x, 0) → x
p(s(x)) → x
p(0) → 0
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(x0), y1) → IF(false, minus(s(x0), s(0)), y1, times(y1, s(x0)))
isZero(0) → true
isZero(s(x)) → false
minus(0, x) → 0
minus(x, s(y)) → p(minus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
minus(x, 0) → x
p(s(x)) → x
p(0) → 0
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(x0), y1) → IF(false, minus(s(x0), s(0)), y1, times(y1, s(x0)))
minus(x, s(y)) → p(minus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
minus(0, x) → 0
minus(x, 0) → x
p(s(x)) → x
p(0) → 0
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
isZero(0)
isZero(s(x0))
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(x0), y1) → IF(false, minus(s(x0), s(0)), y1, times(y1, s(x0)))
minus(x, s(y)) → p(minus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
minus(0, x) → 0
minus(x, 0) → x
p(s(x)) → x
p(0) → 0
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
FACITER(s(y0), y1) → IF(false, p(minus(s(y0), 0)), y1, times(y1, s(y0)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
FACITER(s(y0), y1) → IF(false, p(minus(s(y0), 0)), y1, times(y1, s(y0)))
IF(false, x, y, z) → FACITER(x, z)
minus(x, s(y)) → p(minus(x, y))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
minus(0, x) → 0
minus(x, 0) → x
p(s(x)) → x
p(0) → 0
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
FACITER(s(y0), y1) → IF(false, p(minus(s(y0), 0)), y1, times(y1, s(y0)))
IF(false, x, y, z) → FACITER(x, z)
minus(x, 0) → x
p(s(x)) → x
p(0) → 0
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
FACITER(s(y0), y1) → IF(false, p(s(y0)), y1, times(y1, s(y0)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(y0), y1) → IF(false, p(s(y0)), y1, times(y1, s(y0)))
minus(x, 0) → x
p(s(x)) → x
p(0) → 0
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(y0), y1) → IF(false, p(s(y0)), y1, times(y1, s(y0)))
p(s(x)) → x
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
minus(x0, 0)
minus(0, x0)
minus(x0, s(x1))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(y0), y1) → IF(false, p(s(y0)), y1, times(y1, s(y0)))
p(s(x)) → x
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
FACITER(s(y0), y1) → IF(false, y0, y1, times(y1, s(y0)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(y0), y1) → IF(false, y0, y1, times(y1, s(y0)))
p(s(x)) → x
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(y0), y1) → IF(false, y0, y1, times(y1, s(y0)))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
p(s(x0))
p(0)
p(s(x0))
p(0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ ForwardInstantiation
IF(false, x, y, z) → FACITER(x, z)
FACITER(s(y0), y1) → IF(false, y0, y1, times(y1, s(y0)))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
IF(false, s(y_0), x1, x2) → FACITER(s(y_0), x2)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ QDPSizeChangeProof
IF(false, s(y_0), x1, x2) → FACITER(s(y_0), x2)
FACITER(s(y0), y1) → IF(false, y0, y1, times(y1, s(y0)))
times(0, y) → 0
times(s(x), y) → plus(y, times(x, y))
plus(0, x) → x
plus(s(x), y) → s(plus(x, y))
plus(0, x0)
plus(s(x0), x1)
times(0, x0)
times(s(x0), x1)
From the DPs we obtained the following set of size-change graphs: